package be.kdg.bombermanunlimited.client.network.listeners;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * Een luisteraar die naar de SERVER luistert.
 * 
 * @author Philip
 * 
 */
public interface IRingServerListener extends Remote {
	/**
	 * De server zegt met wel ip adres je moet verbinden
	 * 
	 * @param ip
	 *            ip waarmee je moet connecten
	 * @param port
	 *            op welke poort
	 * @throws RemoteException
	 */
	public void connectTo(String ip, int port) throws RemoteException;

	/**
	 * een functie om te controlleren of hij je nog kan bereiken. Deze wordt
	 * gebruikt als er een "onConnectionLost" binnen komt bij de server.
	 * 
	 * @return true
	 * @throws RemoteException
	 */
	public boolean isUp() throws RemoteException;

	/**
	 * Als je connectie probeert te maken met een ip:port combinatie die al in
	 * gebruik is, dan wordt deze functie aangeroepen.
	 * 
	 * @throws RemoteException
	 */
	public void socketAlreadyInUse() throws RemoteException;

	/**
	 * Je bent succesvol toegevoegd aan de lijst op de server
	 * 
	 * @throws RemoteException
	 */
	public void addSuccess() throws RemoteException;

	/**
	 * Als de server volzet is.
	 * 
	 * @throws RemoteException
	 */
	public void serverFull() throws RemoteException;
}
